Skip to content

release: 4.20.0#101

Open
stainless-app[bot] wants to merge 3 commits into
mainfrom
release-please--branches--main--changes--next
Open

release: 4.20.0#101
stainless-app[bot] wants to merge 3 commits into
mainfrom
release-please--branches--main--changes--next

Conversation

@stainless-app

@stainless-app stainless-app Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor

Automated Release PR

4.20.0 (2026-07-14)

Full Changelog: v4.19.2...v4.20.0

Features

  • Document POST /notifications/{id}/duplicate [C-18607] (#165) (212644c)
  • Merge pull request #149 from trycourier/geraldosilva/c-19201-notification-template-subscription-topic-id (cd697fa)

This pull request is managed by Stainless's GitHub App.

The semver version number is based on included commit messages. Alternatively, you can manually set the version number in the title of this pull request.

For a better experience, it is recommended to use either rebase-merge or squash-merge when merging this pull request.

🔗 Stainless website
📚 Read the docs
🙋 Reach out for help or questions

…tification-template-subscription-topic-id

Document subscription_topic_id on notification template V2 responses
@stainless-app

stainless-app Bot commented Jul 13, 2026

Copy link
Copy Markdown
Contributor Author

🧪 Testing

To try out this version of the SDK:

bundle remove trycourier && bundle add trycourier --source 'https://pkg.stainless.com/s/courier-ruby/212644cd49ac7b108944831e04289d2e9e073b7d'

Expires at: Thu, 13 Aug 2026 18:41:04 GMT
Updated at: Tue, 14 Jul 2026 18:41:04 GMT

stainless-app Bot and others added 2 commits July 14, 2026 18:40
* Document POST /notifications/{id}/duplicate [C-18607]

Documents the V2 notification template duplicate endpoint added in
trycourier/backend#9536 and registers it for SDK generation.

- openapi.yml: new /notifications/{id}/duplicate path (post,
  operationId notifications_duplicate), modeled on the sibling publish
  endpoint. 201 -> NotificationTemplateResponse, 404 -> NotFound,
  422 -> UnprocessableEntity (source is journey- or broadcast-scoped).
- stainless.yml: adds duplicate: post /notifications/{id}/duplicate so a
  duplicate() method generates across the SDKs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Use real TypeID-style example IDs + add id-conventions.md

The duplicate endpoint example used placeholder IDs (nt_01xyz789,
brand_abc, marketing, nt_123, journey_abc) that don't match the
TypeID convention the rest of the spec follows. Swap them for real
canonical sample IDs (nt_/bnd_/pt_/jry_).

Add specs/id-conventions.md documenting the prefix registry (sourced
from backend lib/courier-ids/constants.ts), the canonical sample IDs to
reuse, and two open questions (journey jry vs jny; brand bnd not yet in
the backend registry).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

* Move ID conventions from specs/ into an example-ids skill

specs/ is for the shipped spec, not editor/agent guidance. Relocate the
convention reference to .agents/skills/example-ids/SKILL.md (surfaced via
the .claude/.cursor/.codex skills symlinks) so it triggers when editing
openapi.yml examples.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@stainless-app stainless-app Bot force-pushed the release-please--branches--main--changes--next branch from faaa1bc to 2aeba4a Compare July 14, 2026 18:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Development

Successfully merging this pull request may close these issues.

0 participants